//package com.shwread.android.qysw.activity;
//
//import java.lang.reflect.Type;
//
//import logic.bean.GoodsBaseInfo;
//import logic.bean.GoodsSkuMapInfo;
//import logic.bean.ShoppingCart;
//import logic.constants.AppConfig;
//import logic.constants.DefaultConsts;
//import logic.dao.ShoppingCartDao;
//import logic.util.Utils;
//
//import org.apache.http.Header;
//
//import android.annotation.SuppressLint;
//import android.app.Dialog;
//import android.content.Context;
//import android.content.Intent;
//import android.graphics.Bitmap;
//import android.os.Bundle;
//import android.os.Handler;
//import android.util.Log;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.webkit.ConsoleMessage;
//import android.webkit.JsPromptResult;
//import android.webkit.JsResult;
//import android.webkit.WebChromeClient;
//import android.webkit.WebResourceResponse;
//import android.webkit.WebSettings;
//import android.webkit.WebView;
//import android.webkit.WebViewClient;
//import android.widget.Button;
//import android.widget.ImageView;
//import android.widget.RelativeLayout;
//import android.widget.TextView;
//
//import com.google.gson.reflect.TypeToken;
//import com.shwread.android.qysw10000133.R;
//import com.shwread.android.ui.customview.GoodsPropPopView;
//import com.shwread.android.ui.customview.GoodsPropViewListener;
//import com.shwread.android.ui.widget.LoadingView;
//import com.shwread.http.ActionHelp;
//import com.shwread.http.base.ObjectHttpResponseHandler;
//
//
///**
// * @author xuzhijun
// * @date 2015年3月25日 上午10:05:46
// *       商品基本信息页面
// */
//public class GoodsMainActivity
//        extends
//        BaseBusinessActivity
//        implements
//        OnClickListener
//{
//	private Context               mContext;
//	private TextView              tvTitle;
//	private Button                btnBack;
//	
//	private WebView               webView;
//	private RelativeLayout        ralyWebView;
//	private HarlanWebChromeClient chromeClient = null;
//	//	private String                mUrl         = "http://www.baidu.com";
//	
//	private ImageView             gotoShoppingCartActivityImg;
//	private Button                btnAddShoppingCart;         //加入购物车
//	private Button                btnBuy;                     //立刻购买
//	private Button                btnPopupConfirm;            //popupWindow确认
//	private GoodsBaseInfo         goodsInfo;
//	
//	//加载动画
//	private LoadingView           loadingView;
//	
//	private GoodsPropPopView      popupWindow;
//	private View                  popupView;
//	
//	/** 应用是否退出 */
//	private boolean               isAppExit    = false;
//	
//	private ShoppingCartDao       shoppingCartDao;
//	
//	private String                goodsUrl;
//	private long                  goodsId;
//	
//	@Override
//	public Handler getUIHandler() {
//		// TODO Auto-generated method stub
//		return null;
//	}
//	
//	@Override
//	protected void onCreate(Bundle savedInstanceState) {
//		super.onCreate(savedInstanceState);
//		setContentView(R.layout.goods_main);
//		mContext = this;
//		initView();
//		initData();
//		initLoadingView();
//		setListener();
//		setWebView();
//		if (savedInstanceState != null)
//		{
//			webView.restoreState(savedInstanceState);
//		}
//	}
//	
//	private void initView() {
//		tvTitle = (TextView) findViewById(R.id.common_header_name);
//		tvTitle.setVisibility(View.GONE);
//		btnBack = (Button) findViewById(R.id.common_header_back);
//		btnBack.setVisibility(View.VISIBLE);
//		
//		ralyWebView = (RelativeLayout) findViewById(R.id.goods_main_ray);
//		loadingView = (LoadingView) findViewById(R.id.order_detail_loading_view);
//		btnAddShoppingCart = (Button) findViewById(R.id.goods_main_bottom_add_btn);
//		btnBuy = (Button) findViewById(R.id.goods_main_bottom_buy_btn);
//		
//		webView = (WebView) findViewById(R.id.goods_main_wv);
//		gotoShoppingCartActivityImg = (ImageView) findViewById(R.id.goods_main_bottom_shoppingcart_img);
//		
//		popupView = LayoutInflater.from(mContext).inflate(R.layout.goods_main_popup, null);
//		btnPopupConfirm = (Button) popupView.findViewById(R.id.goods_main_popup_confirm);
//	}
//	
//	private void initData() {
//		
//		goodsUrl = getIntent().getExtras().getString(DefaultConsts.GOODS_URL_TO_WAP);
//		goodsId = getIntent().getExtras().getLong(DefaultConsts.GOODS_ID_TO_WAP);
//		if (goodsId < 1)
//		{
//			goodsId = 3L;
//		}
//		if (Utils.isEmpty(goodsUrl))
//		{
//			goodsUrl = "https://www.baidu.com";
//		}
//		
//		ActionHelp.qryGoodsBase(mContext, goodsId, new GoodsBaseHandker());
//		
//	}
//	
//	private class GoodsBaseHandker
//	        extends
//	        ObjectHttpResponseHandler<GoodsBaseInfo>
//	{
//		
//		@Override
//		public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
//			if (statusCode < 1000)
//			{
//				
//				Utils.ToastShow(mContext, "网络错误");
//			}
//			else
//			{
//				Utils.ToastShow(mContext, "请求出错");
//			}
//			
//		}
//		
//		@Override
//		public void onSuccess(int statusCode, Header[] headers, GoodsBaseInfo object, String responseString) {
//			System.out.println("xxxxxxxxxxxxxxxxxxx_" + responseString);
//			goodsInfo = object;
//		}
//		
//		@Override
//		public Type getType() {
//			return new TypeToken<GoodsBaseInfo>()
//			{
//			}.getType();
//		}
//		
//	}
//	
//	private void setListener() {
//		btnBack.setOnClickListener(this);
//		btnBuy.setOnClickListener(this);
//		btnAddShoppingCart.setOnClickListener(this);
//		gotoShoppingCartActivityImg.setOnClickListener(this);
//	}
//	
//	private void initLoadingView() {
//		loadingView.setLoadingAnim(R.anim.home_progress);
//		//		loadingView.setLoadingAnim(R.anim.column_switch_anim);
//		loadingView.changeLoadingStatus(0);
//		
//		loadingView.setVisibility(View.VISIBLE);
//		ralyWebView.setVisibility(View.GONE);
//	}
//	
//	@Override
//	protected void onSaveInstanceState(Bundle outState) {
//		webView.saveState(outState);
//	}
//	
//	@Override
//	public void onClick(View v) {
//		switch (v.getId()) {
//			case R.id.common_header_back:
//				goback();
//				break;
//			case R.id.goods_main_bottom_add_btn:
//				
//				if (goodsInfo != null)
//				{
//					popupWindow = new GoodsPropPopView(mContext, goodsInfo, new GoodsPropViewListener()
//					{
//						@Override
//						public void OK(GoodsSkuMapInfo goodsSkuMapInfo, String propString, int count, Dialog d) {
//							shoppingCartDao = ShoppingCartDao.getInstance(mContext);
//							ShoppingCart s1;
//							if (goodsSkuMapInfo != null)
//							{
//								s1 = new ShoppingCart(ActionHelp.getAccount(), goodsInfo.getGoodsId(), Integer.parseInt(AppConfig.getEnterpriseId()), goodsInfo.getTitle(), goodsInfo.getSellPoint(), goodsInfo.getShortDesc(), goodsInfo.getCoverUrl(), count, goodsSkuMapInfo.getPrice(), "n", goodsSkuMapInfo.getSkuId(), propString, System.currentTimeMillis());
//							}
//							else
//							{
//								s1 = new ShoppingCart(ActionHelp.getAccount(), goodsInfo.getGoodsId(), Integer.parseInt(AppConfig.getEnterpriseId()), goodsInfo.getTitle(), goodsInfo.getSellPoint(), goodsInfo.getShortDesc(), goodsInfo.getCoverUrl(), count, goodsInfo.getSalePrice(), "n", 0, "", System.currentTimeMillis());
//							}
//							
//							s1.goodsDetailUrl = goodsInfo.getDetailUrl();
//							
//							if (shoppingCartDao.add(s1) != -1)
//							{
//								Utils.ToastShow(mContext, "添加成功");
//								d.dismiss();
//							}
//							else
//							{
//								Utils.ToastShow(mContext, "添加失败");
//							}
//						}
//						
//					});
//					popupWindow.showWindow();
//				}
//				break;
//			case R.id.goods_main_bottom_buy_btn:
//				if (goodsInfo != null)
//				{
//					popupWindow = new GoodsPropPopView(mContext, goodsInfo, new GoodsPropViewListener()
//					{
//						@Override
//						public void OK(GoodsSkuMapInfo goodsSkuMapInfo, String propString, int count, Dialog d) {
//							
//							shoppingCartDao = ShoppingCartDao.getInstance(mContext);
//							ShoppingCart goods = new ShoppingCart(ActionHelp.getAccount(), goodsInfo.getGoodsId(), Integer.parseInt(AppConfig.getEnterpriseId()), goodsInfo.getTitle(), goodsInfo.getSellPoint(), goodsInfo.getShortDesc(), goodsInfo.getCoverUrl(), count, goodsSkuMapInfo.getPrice(), "n", goodsSkuMapInfo.getSkuId(), propString, System.currentTimeMillis());
//							goods.goodsDetailUrl = goodsInfo.getDetailUrl();
//							Intent confirmOrderIntent = new Intent(GoodsMainActivity.this, ConfirmOrderActivity.class);
//							confirmOrderIntent.putExtra(DefaultConsts.FROM_TYPE, DefaultConsts.CONFIRM_ORDER_FROM_GOODS_MAIN);
//							confirmOrderIntent.putExtra(DefaultConsts.CONFIRM_ORDER_GOODS, goods);
//							
//							startActivity(confirmOrderIntent);
//							d.dismiss();
//						}
//					});
//					popupWindow.showWindow();
//				}
//				break;
//			case R.id.goods_main_bottom_shoppingcart_img:
//				Intent intentCart = new Intent(this, ShoppingCartActivity.class);
//				startActivity(intentCart);
//				break;
//			
//			default:
//				break;
//		}
//		
//	}
//	
//	//	private void setViewAnimation() {
//	//		ObjectAnimator oa=ObjectAnimator.ofFloat(getWindow().getAttributes(), "alpha", 0f, 1f);
//	//		oa.setDuration(3000);
//	//		oa.start();
//	//    }
//	
//	void goback() {
//		if (webView.canGoBack())
//		{
//			webView.goBack();
//		}
//		else
//		{
//			setResult(RESULT_OK);
//			finish();
//		}
//	}
//	
//	@Override
//	public void onBackPressed() {
//		goback();
//	}
//	
//	@SuppressLint ("SetJavaScriptEnabled")
//	private void setWebView() {
//		/*
//		 * webSettings 保存着WebView中的状态信息。
//		 * 当WebView第一次被创建时，webSetting中存储的都为默认值。
//		 * WebSetting和WebView一一绑定的。
//		 * 如果webView被销毁了，那么我们再次调用webSetting中的方法时，会抛出异常。
//		 */
//		WebSettings webSettings = webView.getSettings();
//		
//		webSettings.setJavaScriptEnabled(true);
//		webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
//		
//		webView.setWebViewClient(new HarlanWebViewClient());
//		
//		chromeClient = new HarlanWebChromeClient();
//		webView.setWebChromeClient(chromeClient);
//		
//		//		webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//		webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
//		
//		webView.setHorizontalScrollBarEnabled(false);
//		webView.setVerticalScrollBarEnabled(false);
//		
//		webSettings.setSupportZoom(false);
//		webSettings.setPluginState(WebSettings.PluginState.ON);
//		webSettings.setLoadWithOverviewMode(true);
//		webSettings.setUseWideViewPort(true); //适应屏幕
//		
//		if (Utils.isEmpty(goodsUrl))
//		{
//			loadingView.setVisibility(View.GONE);
//			ralyWebView.setVisibility(View.VISIBLE);
//		}
//		else
//		{
//			webView.loadUrl(Utils.addUrlTimestamp(goodsUrl));
//		}
//		
//		/*
//		 * 为js提供一个方法，注意该方法一般不写在UI线程中
//		 * addJavascriptInterface(Object obj, String interfaceName)
//		 * obj代表一个java对象，这里我们一般会实现一个自己的类，类里面提供我们要提供给javascript访问的方法
//		 * interfaceName则是访问我们在obj中声明的方法时候所用到的js对象，调用方法为window.interfaceName.方法名(
//		 * )
//		 */
//		webView.addJavascriptInterface(new SubMaintenanceJavaScriptInterface(), "qyreader");
//	}
//	
//	final class SubMaintenanceJavaScriptInterface
//	{
//		
//		/** 在屏幕下端提示用户 */
//		public void setBookInfo(String bookId, String bookName, String bookType) {
//		}
//		
//		/** 提供给B端打印日志 */
//		public void fireLog(String log) {
//		}
//		
//		/**
//		 * 假如有历史记录 回退历史记录 否则退出容器
//		 */
//		public void goBack() {
//			BaseBusinessActivity.uiHandler.post(new Runnable()
//			{
//				@Override
//				public void run() {
//					onBackPressed();
//				}
//			});
//		}
//	}
//	
//	/***
//	 * webChromeClient主要是将javascript中相应的方法翻译成android本地方法
//	 * 例如：我们重写了onJsAlert方法，那么当页面中需要弹出alert窗口时，便
//	 * 会执行我们的代码，按照我们的Toast的形式提示用户。
//	 */
//	class HarlanWebChromeClient
//	        extends
//	        WebChromeClient
//	{
//		
//		@Override
//		public void onShowCustomView(View view, CustomViewCallback callback) {
//		}
//		
//		@Override
//		public void onHideCustomView() {
//		}
//		
//		@Override
//		public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
//			// TODO Auto-generated method stub
//			Log.d("ZR", consoleMessage.message() + " at " + consoleMessage.sourceId() + ":" + consoleMessage.lineNumber());
//			return super.onConsoleMessage(consoleMessage);
//		}
//		
//		/*
//		 * 此处覆盖的是javascript中的alert方法。
//		 * 当网页需要弹出alert窗口时，会执行onJsAlert中的方法
//		 * 网页自身的alert方法不会被调用。
//		 */
//		@Override
//		public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
//			Utils.showToast(mContext, message);
//			/*
//			 * 此处代码非常重要，若没有，android就不能与js继续进行交互了，
//			 * 且第一次交互后，webview不再展示出来。
//			 * result：A JsResult to confirm that the user hit enter.
//			 * 我的理解是，confirm代表着此次交互执行完毕。只有执行完毕了，才可以进行下一次交互。
//			 */
//			result.confirm();
//			return true;
//		}
//		
//		/*
//		 * 此处覆盖的是javascript中的confirm方法。
//		 * 当网页需要弹出confirm窗口时，会执行onJsConfirm中的方法
//		 * 网页自身的confirm方法不会被调用。
//		 */
//		@Override
//		public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
//			return true;
//		}
//		
//		/*
//		 * 此处覆盖的是javascript中的confirm方法。
//		 * 当网页需要弹出confirm窗口时，会执行onJsConfirm中的方法
//		 * 网页自身的confirm方法不会被调用。
//		 */
//		@Override
//		public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
//			return true;
//		}
//		
//		/*
//		 * 如果页面被强制关闭,弹窗提示：是否确定离开？
//		 * 点击确定 保存数据离开，点击取消，停留在当前页面
//		 */
//		@Override
//		public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
//			return true;
//		}
//	}
//	
//	class HarlanWebViewClient
//	        extends
//	        WebViewClient
//	{
//		@SuppressLint ("NewApi")
//		@Override
//		public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
//			WebResourceResponse response = null;
//			response = super.shouldInterceptRequest(view, url);
//			return response;
//		}
//		
//		/*
//		 * 点击页面的某条链接进行跳转的话，会启动系统的默认浏览器进行加载，调出了我们本身的应用
//		 * 因此，要在shouldOverrideUrlLoading方法中
//		 */
//		@Override
//		public boolean shouldOverrideUrlLoading(WebView view, String url) {
//			//使用当前的WebView加载页面
//			view.loadUrl(url);
//			return true;
//		}
//		
//		/*
//		 * 网页加载完毕(仅指主页，不包括图片)
//		 */
//		@Override
//		public void onPageStarted(WebView view, String url, Bitmap favicon) {
//			super.onPageStarted(view, url, favicon);
//		}
//		
//		/*
//		 * 网页加载完毕(仅指主页，不包括图片)
//		 */
//		@Override
//		public void onPageFinished(WebView view, String url) {
//			super.onPageFinished(view, url);
//			loadingView.setVisibility(View.GONE);
//			ralyWebView.setVisibility(View.VISIBLE);
//		}
//		
//		/*
//		 * 加载页面资源
//		 */
//		@Override
//		public void onLoadResource(WebView view, String url) {
//			super.onLoadResource(view, url);
//		}
//		
//		/*
//		 * 错误提示
//		 */
//		@Override
//		public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//			super.onReceivedError(view, errorCode, description, failingUrl);
//			loadingView.setVisibility(View.GONE);
//			ralyWebView.setVisibility(View.VISIBLE);
//		}
//	};
//	
//}
